perm filename CONECT.MAC[NET,MRC] blob
sn#237776 filedate 1976-09-22 generic text, type T, neo UTF8
DCOBUF: BLOCK 3
DCIBUF: BLOCK 3
CONECB: BLOCK 7
; POSITIONS IN MTAPE BLOCK
STLOC==1 ; STATUS BITS RETURNED HERE
LSLOC==2 ; LOCAL SOCKET
WFLOC==3 ; WAIT FLAG
BSLOC==4 ; BYTE SIZE LOCATION
FSLOC==5 ; FOREIGN SOCKET
HLOC==6 ; HOST NUMBER
; IO ERROR BITS
ERRBTS==763600
; OTHER RANDOM THINGS
TERBLK: 3 ; TERMINATE BLOCK
0 ; STATUS BITS
1 ; FOREIGN SOCKET LOC
0 ; DON'T WAIT
STTBLK: 2
BLOCK 2
ICP: BEGINR
; TOVAR SAYS THIS IS THE RIGHT THING TO DO - MRC
PJOB REG2,
MOVSS REG4,REG2 ; RECEIVE SOCKET
ADDI REG4,1 ; TRANSMIT SOCKET
INIT dcchan,17
SIXBIT /IMP/
0
JRST ICPLUZ
SETZM CONECB
MOVEM REG2,CONECB+LSLOC
MOVEI REG3,DCHOST
MOVEM REG3,CONECB+HLOC
SETOM CONECB+WFLOC
MOVEI REG3,40
MOVEM REG3,CONECB+BSLOC
MOVEI REG3,DCSOKT
MOVEM REG3,CONECB+FSLOC
MTAPE dcchan,[
↑D15
BYTE (6) 2,24,0,12,12
] ; TIME OUT CLS, RFNM, RFC, AND INPUT
MTAPE dcchan,CONECB
STATZ dcchan,ERRBTS
JRST ICPLUZ ; NO CONNECTION TO LOGGER
INPUT dcchan,[IOWD 1,FRS#
0]
STATZ dcchan,ERRBTS
JRST ICPLUZ ; GOT LOGGER BUT DIDN'T GET SOCKET FROM HIM
MOVE REG3,FRS
LSH REG3,-4
MOVEM REG3,FRS
ADDI REG3,1
MOVEM REG3,FSS#
ADDI REG2,2
MOVEM REG2,LRS#
ADDI REG4,2
MOVEM REG4,LSS#
MOVE REG1,CONECB+LSLOC
MOVEM REG1,TERBLK+LSLOC
MTAPE dcchan,TERBLK ; RELEASE LOGGER
INIT dcchan,1
SIXBIT /IMP/
XWD DCOBUF,DCIBUF
JRST ICPLUZ
MTAPE dcchan,[
↑D15
BYTE (6) 5,24,0,12,0
] ; TIME OUT CLS, RFNM, AND RFC
INBUF dcchan,2
OUTBUF dcchan,2
MOVEI REG1,↑D36
DPB REG1,[POINT 6,DCIBUF+1,11]
DPB REG1,[POINT 6,DCOBUF+1,11]
MOVEM REG2,CONECB+LSLOC
MOVEI REG3,DCHOST
MOVEM REG3,CONECB+HLOC
SETZM CONECB+WFLOC
MOVEI REG3,↑D36
MOVEM REG3,CONECB+BSLOC
MOVE REG3,FSS
MOVEM REG3,CONECB+FSLOC
MTAPE dcchan,CONECB
MOVE REG1,CONECB+STLOC
TRNN REG1,-1
STATZ dcchan,ERRBTS
JRST ICPLUZ ; CAN'T CONNECT TO RECEIVE SIDE
CALLR CLSCHK ; SEE IF WE ARE REALLY OPEN
JRST ICPLUZ
AOS CONECB+LSLOC
SOS CONECB+FSLOC
MOVEI REG3,↑D36
MOVEM REG3,CONECB+BSLOC
MTAPE dcchan,CONECB
MOVE REG1,CONECB+STLOC
TRNN REG1,-1
STATZ dcchan,ERRBTS
JRST ICPLUZ ; CAN'T CONNECT TO SEND SIDE
CALLR CLSCHK
JRST ICPLUZ
MOVEI REG3,4
MOVEM REG3,CONECB
MTAPE dcchan,CONECB
MOVE REG1,CONECB+STLOC
TLC REG1,300000
TLCN REG1,300000
TLNE REG1,060000
JRST ICPLUZ
STATZ dcchan,ERRBTS
JRST ICPLUZ
SOS CONECB+LSLOC
CALLR CLSCHK
JRST ICPLUZ
MTAPE dcchan,CONECB
MOVE REG1,CONECB+STLOC
TLC REG1,300000
TLCN REG1,300000
TLNE REG1,060000
JRST ICPLUZ
STATZ dcchan,ERRBTS
JRST ICPLUZ ; LOST WHILE WAITING FOR RECEIVE SIDE TO CONNECT
CALLR CLSCHK
JRST ICPLUZ
ENDR
; ROUTINE TO CHECK IF SOCKET CLOSED ON ME
CLSCHK: BEGINR
MTAPE dcchan,STTBLK
MOVE REG1,STTBLK+1
IOR REG1,STTBLK+2
STATO dcchan,ERRBTS
TLNN REG1,060000
AOS (STAK)
ENDR
; HERE WHEN CONNECTION FAILS
ICPLUZ: OUTSTR [ASCIZ/? CANNOT ESTABLISH NETWORK CONNECTION/]
EXIT
ββ